package org.dromara.project.domain.vo;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.common.translation.annotation.Translation;
import org.dromara.common.translation.constant.TransConstant;
import org.dromara.project.domain.ProContract;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;



/**
 * 合同信息视图对象 qyx_pro_contract
 *
 * @author LUSH
 * @date 2025-05-27
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = ProContract.class)
public class ProContractVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @ExcelProperty(value = "主键ID")
    private Long id;

    /**
     * 合同名称
     */
    @ExcelProperty(value = "合同名称")
    private String contractName;

    /**
     * 合同编号
     */
    @ExcelProperty(value = "合同编号")
    private String contractNumber;

    /**
     * 业主单位
     */
    @ExcelProperty(value = "业主单位")
    private String ownerUnit;

    /**
     * 项目区域
     */
    private String projectRegion;

    /**
     * 项目区域名称
     */
    @Translation(type = TransConstant.REGION_ID_TO_NAME, mapper = "projectRegion")
    @ExcelProperty(value = "项目区域")
    private String projectRegionName;

    /**
     * 执行总裁
     */
    @Translation(type = TransConstant.USER_ID_TO_NAME)
    @ExcelProperty(value = "执行总裁")
    private Long presidentId;

    /**
     * 合同签订时间
     */
    @ExcelProperty(value = "合同签订时间")
    private Date conSignTime;

    /**
     * 合同总金额
     */
    @ExcelProperty(value = "合同总金额")
    private BigDecimal conTotalAmount;

    /**
     * 合同是否有延期约定（0否1是）
     */
    @ExcelProperty(value = "合同是否有延期约定", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=否，1=是")
    private String hasExtension;


}
